/*Vérifie que pour une création / terminaison de thread en boucle on a bien une utilisation de mémoire
 *constante.
 *A la place d'une boucle infinie on utilise une bouble sur une trés grande valeur afin de pouvoir récupérer
 *la main à la fin
*/

#include <stdlib.h>
#include <stdio.h>
#include "thread.h"
#include <assert.h>


static void * threadfunc(void * arg)
{
  char *name = arg;
  //  printf("je suis le thread %p, lancé avec l'argument %s\n",
  //	 thread_self(), name);
  thread_yield();
//printf("je suis encore le thread %p, lancé avec l'argument %s\n",
//	 thread_self(), name);
  thread_exit(arg);
}


void boucle_infinie_test(void){
  
  thread_t thread;
  void * retval;
  int err;
  int i=0;

  while (i<10000){
    
    err = thread_create(&thread,threadfunc,"thread");
    assert(!err);
    thread_join(thread,&retval);
    i++;

  }

}

int main(){

  boucle_infinie_test();

}

